home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
FishMarket 1.0
/
FishMarket v1.0.iso
/
fishies
/
476-500
/
disk_500
/
wiconify
/
wiconify-source.lzh
/
Source
/
wStructs.h
< prev
next >
Wrap
C/C++ Source or Header
|
1991-04-19
|
5KB
|
122 lines
/*
* WICONIFY A utility that allows you to iconify any Intuition window
* on any screen, and to open WB windows on any screen.
*
* wStructs.h The main internal structures used by wIconify.
*
* Copyright 1990 by Davide P. Cervone, all rights reserved.
* You may use this code, provided this copyright notice is kept intact.
*/
#define WICONREF struct wIconRef
#define WSCREEN struct wScreen
#include "wIcon.h"
/*
* The is the internal representation of an icon as seen by wIconify.
* Each wScreen has a linked list of wIconRefs that are on that screen.
* A copy of the original wIcon structure is keep within the wIconRef.
* When the wIconCalls library returns icon pointers, it is really
* giving pointers to wIconRefs, not wIcons. The additional flags
* defined below are for system use only, and may not be specified
* by the user in a wIcon.Flags field.
*/
struct wIconRef
{
struct wIconRef *Next,*Prev;
struct Window *Window; /* window associated to icon */
struct wScreen *Screen; /* wScreen where this window lives */
struct wGadget *Gadget; /* gadget in use on backdrop window */
struct wIcon Icon; /* icon images, flags, etc. */
#define WI_DRAGGING BIT(4) /* icon is being dragged */
#define WI_BACKDROPCHANGE BIT(5) /* BACKDROP flags was changed */
#define WI_REFRESHCHANGE BIT(6) /* SMART_REFRESH flag was changed */
#define WI_NOCARECHANGE BIT(7) /* NOCAREREFRESH changed */
#define WI_SYSICON BIT(8) /* wIconify allocated it */
#define WI_SCREENICON BIT(10) /* icon is for a screen */
#define WI_SYSTEMFLAGS 0x020005F4 /* can't be set by user */
#define WI_CHANGEBITS\
(WI_BACKDROPCHANGE| WI_REFRESHCHANGE| WI_NOCARECHANGE)
};
#undef WICONREF
typedef struct wIconRef WICONREF;
/*
* Each screen with a wIconify window has an associated wScreen structure.
* These maintian the information needed to add and remove icons on a
* screen, and to close the screen safely.
*/
struct wScreen
{
struct wScreen *Next,*Prev;
struct Screen *Screen; /* pointer to screen */
struct Window *BackDrop; /* pointer to wIconify backdrop window */
struct wbWindow *Window; /* list of wbWindows openned by wIconify */
struct wIconRef *IconRef; /* list of IconRef's for this screen */
APTR CloseTask; /* pointer to task waiting to close screen */
ULONG CloseSignal; /* signal to tell task it's OK to close */
ULONG Flags;
#define WI_CLOSING BIT(0) /* screen is being closed */
#define WI_WSCREEN BIT(1) /* wIconify opened this screen */
#define WI_STARTDRAG BIT(3) /* Icons are being pressed */
/* #define WI_DRAGGING BIT(4) */
#define WI_REFRESH BIT(5) /* screen icons should be refreshed */
#define WI_CLEARIT BIT(6) /* screen should be cleared first */
#define WI_LAYERLOCK BIT(7) /* the screens layerinfo is locked */
struct wGadget *Selected; /* pointer to first selected icon's gadget */
struct wScreen *NextRefresh; /* pointer to next screen needing refresh */
WICONREF Icon; /* the screen's icon */
};
#undef WSCREEN
typedef struct wScreen WSCREEN;
/*
* Each WB window that has been openned on a screen other than the real
* WB screen gets one of these structures. These are used to tell
* when it is safe to close a screen.
*/
struct wbWindow
{
struct wbWindow *Next,*Prev;
struct Window *Window; /* window opened on WB screen */
struct wScreen *Screen; /* screen that was WB screen */
};
typedef struct wbWindow WBWINDOW;
/*
* An exteneded Gadget definition that includes the gadget's IText,
* and BoolInfo, as well as pointers used in multiple selection.
*/
struct wGadget
{
struct Gadget Gadget; /* actual Gadget structure */
struct IntuiText IText; /* gadget's text */
struct wGadget *NextSelect,*PrevSelect; /* linked list of gadgets */
struct BoolInfo Mask; /* the gadget Mask */
};
typedef struct wGadget WGADGET;
/*
* Each screen in the ignored-screen list has one of these.
*/
struct Ignore /* screens to ignore */
{
struct Ignore *Next; /* linked list of them */
char *Title; /* ignore screens of this title */
};